package com.aims.server.dto;

import com.aims.server.enums.OperationType;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 企业或集团外账户信息明细DTO
 */
public class ExtAccountItemDTO {
    /**
     * 明细ID(用于更新操作)
     */
    private String itemId;

    /**
     * 业务类型(新增、注销)
     */
    @NotNull(message = "业务类型不能为空")
    private OperationType operationType;

    /**
     * 户名
     */
    @NotBlank(message = "户名不能为空")
    @Size(max = 200, message = "户名长度不能超过200字符")
    private String accountName;

    /**
     * 账号
     */
    @NotBlank(message = "账号不能为空")
    @Size(max = 40, message = "账号长度不能超过40字符")
    private String accountNo;

    /**
     * 开户行名称
     */
    @NotBlank(message = "开户行名称不能为空")
    @Size(max = 200, message = "开户行名称长度不能超过200字符")
    private String openingBankName;

    /**
     * 开户行号
     */
    @NotBlank(message = "开户行号不能为空")
    @Size(max = 40, message = "开户行号长度不能超过40字符")
    private String openingBankCode;

    /**
     * 开户行所在地
     */
    @NotBlank(message = "开户行所在地不能为空")
    @Size(max = 200, message = "开户行所在地长度不能超过200字符")
    private String openingBankLocation;

    /**
     * 基本权限证书ID名称
     */
    @NotBlank(message = "基本权限证书ID名称不能为空")
    @Size(max = 200, message = "基本权限证书ID名称长度不能超过200字符")
    private String basePermissionCertIdName;

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public OperationType getOperationType() {
        return operationType;
    }

    public void setOperationType(OperationType operationType) {
        this.operationType = operationType;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getAccountNo() {
        return accountNo;
    }

    public void setAccountNo(String accountNo) {
        this.accountNo = accountNo;
    }

    public String getOpeningBankName() {
        return openingBankName;
    }

    public void setOpeningBankName(String openingBankName) {
        this.openingBankName = openingBankName;
    }

    public String getOpeningBankCode() {
        return openingBankCode;
    }

    public void setOpeningBankCode(String openingBankCode) {
        this.openingBankCode = openingBankCode;
    }

    public String getOpeningBankLocation() {
        return openingBankLocation;
    }

    public void setOpeningBankLocation(String openingBankLocation) {
        this.openingBankLocation = openingBankLocation;
    }

    public String getBasePermissionCertIdName() {
        return basePermissionCertIdName;
    }

    public void setBasePermissionCertIdName(String basePermissionCertIdName) {
        this.basePermissionCertIdName = basePermissionCertIdName;
    }
}